FIG. 1 illustrates an embodiment 100 of a prior art wireless communication system. In particular the wireless system 100 relates to widely used cellular phone system. The system 100 provides for a wide variety of different cellular phones 102 which can be used in a given system. As will be discussed, in more detail below, in any given cellular phone system a wide variety of different types, or platforms, of cellular phone devices can be used. For example, in many present cell phone systems a number of the cell phones used in the system will be of relatively old platforms which generally have low resolution displays. In some cases the displays will be generally monochromatic displays, and for newer phones, displays can provide for very high resolution color graphics. In addition, to the different displays which can be used, different phone platforms can utilize a range of different processors, files systems and memory sizes.
In the past cell phone systems have allowed for both voice only cell phones, and for voice and data cell phones. The discussion herein is directed primarily to services provided to voice and data cell phones, where a voice and data cell phone is one which can transmit voice information and data which can provide for different applications, and media for use on the wireless phone. The media can include a wide range of different data, such as images, audio, video, text, and games etc. In operation the cell phone will transmit and receive data through a cell tower 104. The transmission of data through the cell tower can then coupled through various networks, and/or communication links, to a service carrier server. In the past the carrier servers have generally maintained substantial repositories, shown as N×M application matrix 108, of different applications which can be transmitted to the different cell phones used in the cellular phone system 100. It should be recognized that the N×M application matrix could be stored on the carrier server 106, or on other storage devices coupled with the carrier server.
Presently cellular phone systems are provided by a number of different service carriers, and these different service carriers typically utilize a range of different technologies to provide similar services. For example, one widely utilized cellular phone system uses GSM (Global System for Mobile Communication) technology; service carriers using this type of technology include AT&T, Cingular, Vodaphone and Sprint. Another widely used system uses CDMA (code-division multiple access) technology: service provides using this type of technology include Verizon; US Cellular; and Bell South.
Typically each service carrier system will provide a wide range of different wireless phone options for its customers, and each of the phones can be utilized in the wireless communication system. Each of these different wireless phones has different properties and requires that each application running on the cellular phone take into account specific properties of the particular phone platform being used. In the past in order to accommodate each of the different phone platforms, the applications available for use on the phones, had to be specifically customized for each of the different phones which could be used in a particular system.
In one example, a carrier could allow for a total of 100 different models being used on the wireless communication system. Each of these different models will be referred to herein as a platform. The carrier server will then need to have 100 different versions of each application if it wishes for the application to be available for users of each of the 100 different platforms. Thus, each carrier will need to provide for a matrix of applications 108. The matrix will be an N×M matrix where N corresponds to the number of different wireless phone platforms and the M corresponds to the number of different application which are available on the wireless communication system 100. This past implementation has created a great deal of overhead associated with deploying different applications across a range of different platforms. For example, if a change were being made to an application, then consideration would need to be given as to how to best implement this change in each of the N different versions of the application. Further, in order to maintain a consistency across a range of different platforms, each time a new application is made available, the application would need to be customized for N number of different platforms.
FIG. 2 illustrates additional aspects of a prior art system 200. In the system 200 the wireless phone 202 is coupled to a carrier server through a carrier services infrastructure 204. The carrier services infrastructure 204 would include elements such as the base station or cell tower, as shown in FIG. 1, and any other elements necessary to provide for communications between the wireless phone and the carrier network, and the carrier server. In one embodiment the carrier server 206 operates to initially identify a phone which has initiated communications with the carrier server. The identification of phone 202 then allows the carrier server 206 to make determinations as to what format, and type of data information should be transmitted to the phone 202. The carrier server 206 and phone 202 can communicate using different types of information. At one level when the phone initially transmits information to the carrier server 206, and potentially at other subsequent points of operation, the phone will also transmit information to the carrier server identifying the phone, and/or the user of the phone. Based on the identified phone platform, the carrier server 206 will make determinations as to how to format page display information which will be transmitted to the phone 202. This type of display page information data which is transmitted to the phone, is shown as communication 212, and is sometimes referred to as presentation data, or a presentation layer communication.
For example, if the user of the phone requests a list of applications available for use on the phone, the carrier server can then transmit a page 209 to the phone with a list of available applications. FIG. 2, illustrates a list of applications 1 . . . N shown on a display screen 208 of the phone 202. Based on the type of phone platform, the carrier server 206 will format application list page 209 such that it is of a size and style type which will fit on the display screen 208 of the particular phone platform.
Once the list of applications is displayed on the phone, the user can use the user input devices 210 (such as keypad buttons, or cursor control devices, for example) of the phone, to select a user desired application. This user application selection information 214 is then transmitted to the carrier server 206. Upon receiving the signal 214 from the phone indicating the user selected application, the carrier server 206 will then identify the appropriate version of the application, from the N×M application matrix 216 and transmit the application as executable code 218 to the phone 202. Executable code could be binary code which is formatted for execution on a particular type of processor, or in some situations the executable code could be a type of byte code which is executable by a range of different processors, where the processor is operating a virtual machine environment of execution of byte code. Although not shown in FIG. 2, it should also be recognized that prior systems, also allow for a user of the phone to access the internet through the carrier infrastructure 204. Typically, the user of the phone can then access information at different internet addresses through the phone using a browser operating on the phone. In the past many wireless phones have used a WAP (wireless application protocol) browser. The WAP browser operates to provide a presentation of information obtained from servers coupled to the internet. The WAP browser is generally a stateless device which operates to present information which is provided to it. As a user moves from one page to another page of information, the WAP browser will simply present a rendering for each obtained page. In operation of wireless phones, the WAP browsers have exhibited some limitations. One limitation is that the pages which are presented on the display of the phone must either be formatted by some external server so that the information transmitted to the WAP browser is of an appropriate form for a given phone platform. Where a wide variety of phone platforms with different screen sizes are used, this can create a challenge in terms of keeping track of different formatting requirements for the range of different types of phone platforms. Another issue is that the transmission of information through the wireless communication system to the phone is generally of fairly limited bandwidth, thus the stateless nature of a browser, where each page in its entirety is transmitted to the phone when there is a change in the image presented on the display screen, can result in a relatively slow interaction for communication between the phone and whatever server is being accessed by the phone.
It should be noted that while much of the discussion above refers to a phone as being the device communicating through the wireless communication systems 100 and 200, the wireless phone as described herein is a handheld computing device, which transmits data through a carrier system, which is also referred to herein as a wireless data communication system. The phone allows for transmission of voice data between users of different phones, and further the phone can also provide for a wide range of other functions such as operating as personal digital assistance, camera, and essentially any computing device that provides a platform for wireless communications through a wireless communication system.